import re

"""
re.match() 匹配字符串是否以指定的正则内容开头，匹配成功返回对象，匹配失败返回None
    第一个参数：正则表达式
    第二个参数：要验证的字符串
    第三个参数：可选参数（正则表达式修正符）
re.search() 匹配字符串中是否包含指定的内容 
re.findall() 获取所有的匹配内容，会得倒一个列表
"""

"""
\d 表示0—9之间的任意数字
+  表示前面的内容重复一次或多次
"""

print(re.match("(\d+)", "123456rdfvbks"))

"""
匹配边界字符
^ 表示行首匹配(以指定字符开头)
$ 表示行尾匹配
^文本$ 表示完全匹配
"""

# print(re.search("^world", "world"))

# print(re.search("world$", "world"))

# print(re.search("^world, my money$", "world, my money"))

"""
match 匹配以什么开头
search 搜索匹配
findall 返回的是一个列表
compile 可以将正则字符串编译成正则表达式对象，以便在后面的匹配中复用
"""

"""
\b：匹配单词的边界，是指单词和空格之间的位置
\B：匹配非单词的边界
"""

print(re.search(r"google\b", "abcgoogle ").span())
print(re.search("google\b", "abcgoogle123 "))
print(re.search("google\B", "abcgoogle123 "))

# 转义字符 \ 让正则中一些符号失去原有的意义
# \. 表示对正则中的 . 符号进行转义
print(re.search("google\.le", "google.le"))

# | 表示或者       正则表达式1 ｜ 正则表达式2      表示只要满足两个正则表达式中的一个即可
print(re.search("ab|23", "kjhabcd"))
print(re.search("ab|23", "123456"))


